本篇文章是 2019 it 鐵人賽的 Day 25,我跟我的隊友們 ,會在30天內每人每天完成一篇 it 相關的文章。你現在看到的是 Hello, World! 線上課程學程式?你應該要知道的 30 件事 主題系列文章,歡迎訂閱。
關於學習的一個「刻板印象」是學習就是不斷地吸收(input),不少課程會用自己有多少豐富的「內容」來當作吸引力,又或者是學生在詢問課程時總是會想知道有多少「時數」,以及是否有許多「影片」以確保自己有足夠可以觀看的教材。
但另外一個重要但經常被忽略的練習方式是練習與教學,兩者都是輸出形式的學習(output)。在程式學習中,練習的重要性大概比較好理解,畢竟「寫程式」本身就是輸出的技術。但「教學」作為一種練習和學習的方式,則比較少受到重視。
以下提供幾種我在課程裡鼓勵學生透過教學(或分享)來學習的方式給大家參考
寫筆記最直接的自我輸出,而且不需依靠任何課程設計練習題或作業,只要有學習,都可以透過自己的話來摘要重點,或是寫下自己的學習反思。
我觀察到,有些學生會很主動地在課程的留言區分享摘要本章重點,或是他另外查到的一些學習資源和其他同學們分享。這些都是很好的筆記練習,同時也能促進社群互動。
另外一種更進階的筆記練習是發布成部落格,這當中的差異是是否有第三隻眼睛的審視。自己的筆記可以亂寫,但要發布成給別人看的部落格,就必須要有條理地說明前言後語。如果是要寫成「教學型」部落格,就更要仔細地拆解步驟,並且把觀念說明清楚。原本在腦中只有80分清楚的觀念,因為在整理、寫作過程中逐漸釐清而變得更加清楚和熟練。it鐵人賽就是很好的透過教學分享來學習的示範。
比起寫筆記和部落格,讀書會更需要花費組織的時間。讀書會通常需要大量的互動,可能會有人負責摘要、寫筆記、提問、和分享。這種人少的高強度互動交流,理論上會促使每個人都主動參與其中。透過讀書會的準備和進行,通常也能加深學習效果。不過讀書會的風險就是品質高度養來參與人的準備深淺。如果一群人都沒讀書就來讀書會,那也就跟閒聊沒兩樣。
有些人可能會想,我都還沒學成出師,要怎麼教人?在寫程式這件事情上,還是有明顯的主題先後與難易。即使還沒學完找到第一份軟體工程師的工作,還是可以透過與同儕討論、或是指點學弟妹等方式來透過「教學」來學習。
以我經手的為例,我和我的同事們設計了「實習助教」機制來鼓勵高年級的學長姐,擔任低年級學弟妹的實習助教。在批改作業和回答問題上,試著從過來人的經驗,幫助新手解決問題。
擔任實習助教的同學們也都表示,為了要更謹慎全面地回答問題,自己也都會再多做複習與查找資料,又或是學習到不同的解題方式。即便是已經有數年業界開發經驗的正式助教,同樣都能有所收穫和成長,徹底實踐教學相長「透過教學來學習」的理念設計。
以上幾點,是我認為在線上程式課程中,能夠賦予學生透過教學來學習的好方法。畢竟吸收只是第一層學習,在準備教材、到真的教出來,又是第二、三層的學習。透過反覆且不同形式的練習,更能有效幫助同學們吸收與成長。